package dao;

import java.util.List;

import hibernate.HibernateUtil;

import org.hibernate.SessionFactory;
import org.hibernate.classic.Session;

import entity.Encomienda.Entity_ActividadEncomienda;
import entity.Encomienda.Entity_Destinatario;
import entity.Encomienda.Entity_EncomiendaEmpresa;
import entity.Encomienda.Entity_EncomiendaEnStock;
import entity.Encomienda.Entity_EncomiendaParticular;
import entity.Encomienda.Entity_EnvioPropio;
import entity.Encomienda.Entity_EnvioTercerizado;
import entity.Encomienda.Entity_HojaDeRuta;
import entity.Encomienda.Entity_Manifiesto;
import entity.Encomienda.Entity_ProductoClienteEncomienda;
import entity.Encomienda.Entity_Remito;
import entity.Encomienda.Entity_Trayecto;
import entity.Encomienda.Entity_TrayectoIntersucursal;
import entity.Encomienda.Entity_TrayectoOrigenSucursal;
import entity.Encomienda.Entity_TrayectoSucursalDestino;


public class EncomiendaDAO {
	private static EncomiendaDAO instancia;
	private static SessionFactory sf = null;

	private EncomiendaDAO() {
		sf = HibernateUtil.getSessionFactory();
    }
	
	
	public static EncomiendaDAO getInstancia(){
		if(instancia == null){
			instancia = new EncomiendaDAO();
		} 
		return instancia;
	}
	
	/**Actividad Encomienda**/
	public void altaActividadEncomienda(Entity_ActividadEncomienda actividad) {
		 try {
	        	Session session=sf.openSession();
	            session.beginTransaction();
	            session.save(actividad); 
	            session.getTransaction().commit();
	            session.close();
	        } catch (Exception e){
	            System.out.println(e);
	            System.out.println("Error EncomiendaDAO. Alta Actividad Encomienda");
	        }
	}
	public void modificarActividadEncomienda(Entity_ActividadEncomienda actividad) {
		 try {
	        	Session session=sf.openSession();
	            session.beginTransaction();
	            session.update(actividad); 
	            session.getTransaction().commit();
	            session.close();
	        } catch (Exception e){
	            System.out.println(e);
	            System.out.println("Error EncomiendaDAO. Modificar Actividad Encomienda");
	        }
	}
	public void bajaActividadEncomienda(Entity_ActividadEncomienda actividad) {
		try {
			 Session session=sf.getCurrentSession();
             session.beginTransaction();
             session.delete(actividad);
             session.flush();
             session.getTransaction().commit();
        } catch (Exception e){
            System.out.println(e);
            System.out.println("Error EncomiendaDAO. Eliminar Actividad Encomienda");
        }
	}
	public Entity_ActividadEncomienda getActividadEncomienda(Integer idActividad) {
		try {
        	Session session=sf.openSession();
            session.beginTransaction();
            Entity_ActividadEncomienda actividad = (Entity_ActividadEncomienda) session.get(Entity_ActividadEncomienda.class, idActividad);
            session.getTransaction().commit();
            session.close();
            return actividad;
        } catch (Exception e){
            System.out.println(e);
            System.out.println("Error EncomiendaDAO. Get Actividad Encomienda");
        }
        return null;
	}
	
	/**Destinatario**/
	public void altaDestinatario(Entity_Destinatario destinatario) {
		 try {
	        	Session session=sf.openSession();
	            session.beginTransaction();
	            session.save(destinatario); 
	            session.getTransaction().commit();
	            session.close();
	        } catch (Exception e){
	            System.out.println(e);
	            System.out.println("Error EncomiendaDAO. Alta Destinatario");
	        }
	}
	public void  modificarDestinatario(Entity_Destinatario destinatario) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          session.update(destinatario); 
          session.getTransaction().commit();
          session.close();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Modificar Destinatario");
      }
	}
	public void bajaDestinatario(Entity_Destinatario destinatario) {
		try {
			 Session session=sf.getCurrentSession();
           session.beginTransaction();
           session.delete(destinatario);
           session.flush();
           session.getTransaction().commit();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Eliminar Destinatario");
      }
	}
	public Entity_Destinatario getDestinatario(Integer idDestinatario) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          Entity_Destinatario destinatario = (Entity_Destinatario) session.get(Entity_Destinatario.class, idDestinatario);
          session.getTransaction().commit();
          session.close();
          return destinatario;
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Get Destinatario");
      }
      return null;
	}
	
	/*Encomienda*/
	public void altaEncomiendaEmpresa(Entity_EncomiendaEmpresa encomienda) {
		 try {
	        	Session session=sf.openSession();
	            session.beginTransaction();
	            session.save(encomienda); 
	            session.getTransaction().commit();
	            session.close();
	        } catch (Exception e){
	            System.out.println(e);
	            System.out.println("Error EncomiendaDAO. Alta EncomiendaEmpresa");
	        }
	}
	public void  modificarEncomiendaEmpresa(Entity_EncomiendaEmpresa encomienda) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          session.update(encomienda); 
          session.getTransaction().commit();
          session.close();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Modificar EncomiendaEmpresa");
      }
	}
	public void bajaEncomiendaEmpresa(Entity_EncomiendaEmpresa encomienda) {
		try {
			 Session session=sf.getCurrentSession();
           session.beginTransaction();
           session.delete(encomienda);
           session.flush();
           session.getTransaction().commit();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Eliminar EncomiendaEmpresa");
      }
	}
	public Entity_EncomiendaEmpresa getEncomiendaEmpresa(Integer idEncomiendaEmpresa) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          Entity_EncomiendaEmpresa encomienda = (Entity_EncomiendaEmpresa) session.get(Entity_EncomiendaEmpresa.class, idEncomiendaEmpresa);
          session.getTransaction().commit();
          session.close();
          return encomienda;
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Get EncomiendaEmpresa");
      }
      return null;
	}
	
	
	public void altaEncomiendaParticular(Entity_EncomiendaParticular encomienda) {
		 try {
	        	Session session=sf.openSession();
	            session.beginTransaction();
	            session.save(encomienda); 
	            session.getTransaction().commit();
	            session.close();
	        } catch (Exception e){
	            System.out.println(e);
	            System.out.println("Error EncomiendaDAO. Alta EncomiendaParticular");
	        }
	}
	public void  modificarEncomiendaParticular(Entity_EncomiendaParticular encomienda) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          session.update(encomienda); 
          session.getTransaction().commit();
          session.close();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Modificar EncomiendaParticular");
      }
	}
	public void bajaEncomiendaParticular(Entity_EncomiendaParticular encomienda) {
		try {
			 Session session=sf.getCurrentSession();
           session.beginTransaction();
           session.delete(encomienda);
           session.flush();
           session.getTransaction().commit();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Eliminar EncomiendaParticular");
      }
	}
	public Entity_EncomiendaParticular getEncomiendaParticular(Integer idEncomiendaParticular) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          Entity_EncomiendaParticular sucursal = (Entity_EncomiendaParticular) session.get(Entity_EncomiendaParticular.class, idEncomiendaParticular);
          session.getTransaction().commit();
          session.close();
          return sucursal;
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Get EncomiendaParticular");
      }
      return null;
	}
	
	/**Encomienda Stock**/
	public void altaEncomiendaEnStock(Entity_EncomiendaEnStock encomienda) {
		 try {
	        	Session session=sf.openSession();
	            session.beginTransaction();
	            session.save(encomienda); 
	            session.getTransaction().commit();
	            session.close();
	        } catch (Exception e){
	            System.out.println(e);
	            System.out.println("Error EncomiendaDAO. Alta EncomiendaEnStock");
	        }
	}
	public void  modificarEncomiendaEnStock(Entity_EncomiendaEnStock encomienda) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          session.update(encomienda); 
          session.getTransaction().commit();
          session.close();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Modificar EncomiendaEnStock");
      }
	}
	public void bajaEncomiendaEnStock(Entity_EncomiendaEnStock encomienda) {
		try {
			 Session session=sf.getCurrentSession();
           session.beginTransaction();
           session.delete(encomienda);
           session.flush();
           session.getTransaction().commit();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Eliminar EncomiendaEnStock");
      }
	}
	public Entity_EncomiendaEnStock getEncomiendaEnStock(Integer idEncomiendaEnStock) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          Entity_EncomiendaEnStock sucursal = (Entity_EncomiendaEnStock) session.get(Entity_EncomiendaEnStock.class, idEncomiendaEnStock);
          session.getTransaction().commit();
          session.close();
          return sucursal;
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Get EncomiendaEnStock");
      }
      return null;
	}
	
	/**Envio**/
	
	public void altaEnvioPropio(Entity_EnvioPropio envio) {
		 try {
	        	Session session=sf.openSession();
	            session.beginTransaction();
	            session.save(envio); 
	            session.getTransaction().commit();
	            session.close();
	        } catch (Exception e){
	            System.out.println(e);
	            System.out.println("Error EncomiendaDAO. Alta EnvioPropio");
	        }
	}
	public void  modificarEnvioPropio(Entity_EnvioPropio envio) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          session.update(envio); 
          session.getTransaction().commit();
          session.close();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Modificar EnvioPropio");
      }
	}
	public void bajaEnvioPropio(Entity_EnvioPropio envio) {
		try {
			 Session session=sf.getCurrentSession();
           session.beginTransaction();
           session.delete(envio);
           session.flush();
           session.getTransaction().commit();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Eliminar EnvioPropio");
      }
	}
	public Entity_EnvioPropio getEnvioPropio(Integer idEnvioPropio) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          Entity_EnvioPropio sucursal = (Entity_EnvioPropio) session.get(Entity_EnvioPropio.class, idEnvioPropio);
          session.getTransaction().commit();
          session.close();
          return sucursal;
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Get EnvioPropio");
      }
      return null;
	}
	
	public void altaEnvioTercerizado(Entity_EnvioTercerizado envio) {
		 try {
	        	Session session=sf.openSession();
	            session.beginTransaction();
	            session.save(envio); 
	            session.getTransaction().commit();
	            session.close();
	        } catch (Exception e){
	            System.out.println(e);
	            System.out.println("Error EncomiendaDAO. Alta EnvioTercerizado");
	        }
	}
	public void  modificarEnvioTercerizado(Entity_EnvioTercerizado envio) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          session.update(envio); 
          session.getTransaction().commit();
          session.close();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Modificar EnvioTercerizado");
      }
	}
	public void bajaEnvioTercerizado(Entity_EnvioTercerizado envio) {
		try {
			 Session session=sf.getCurrentSession();
           session.beginTransaction();
           session.delete(envio);
           session.flush();
           session.getTransaction().commit();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Eliminar EnvioTercerizado");
      }
	}
	public Entity_EnvioTercerizado getEnvioTercerizado(Integer idEnvioTercerizado) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          Entity_EnvioTercerizado sucursal = (Entity_EnvioTercerizado) session.get(Entity_EnvioTercerizado.class, idEnvioTercerizado);
          session.getTransaction().commit();
          session.close();
          return sucursal;
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Get EnvioTercerizado");
      }
      return null;
	}
	
	/**Hoja Ruta**/
	
	public void altaHojaDeRuta(Entity_HojaDeRuta hojaRuta) {
		 try {
	        	Session session=sf.openSession();
	            session.beginTransaction();
	            session.save(hojaRuta); 
	            session.getTransaction().commit();
	            session.close();
	        } catch (Exception e){
	            System.out.println(e);
	            System.out.println("Error EncomiendaDAO. Alta HojaDeRuta");
	        }
	}
	public void  modificarHojaDeRuta(Entity_HojaDeRuta hojaRuta) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          session.update(hojaRuta); 
          session.getTransaction().commit();
          session.close();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Modificar HojaDeRuta");
      }
	}
	public void bajaHojaDeRuta(Entity_HojaDeRuta hojaRuta) {
		try {
			 Session session=sf.getCurrentSession();
           session.beginTransaction();
           session.delete(hojaRuta);
           session.flush();
           session.getTransaction().commit();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Eliminar HojaDeRuta");
      }
	}
	public Entity_HojaDeRuta getHojaDeRuta(Integer idHojaDeRuta) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          Entity_HojaDeRuta sucursal = (Entity_HojaDeRuta) session.get(Entity_HojaDeRuta.class, idHojaDeRuta);
          session.getTransaction().commit();
          session.close();
          return sucursal;
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Get HojaDeRuta");
      }
      return null;
	}
	/**Manifiesto**/
	
	public void altaManifiesto(Entity_Manifiesto manifiesto) {
		 try {
	        	Session session=sf.openSession();
	            session.beginTransaction();
	            session.save(manifiesto); 
	            session.getTransaction().commit();
	            session.close();
	        } catch (Exception e){
	            System.out.println(e);
	            System.out.println("Error EncomiendaDAO. Alta Manifiesto");
	        }
	}
	public void  modificarManifiesto(Entity_Manifiesto manifiesto) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          session.update(manifiesto); 
          session.getTransaction().commit();
          session.close();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Modificar Manifiesto");
      }
	}
	public void bajaManifiesto(Entity_Manifiesto manifiesto) {
		try {
			 Session session=sf.getCurrentSession();
           session.beginTransaction();
           session.delete(manifiesto);
           session.flush();
           session.getTransaction().commit();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Eliminar Manifiesto");
      }
	}
	public Entity_Manifiesto getManifiesto(Integer idManifiesto) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          Entity_Manifiesto sucursal = (Entity_Manifiesto) session.get(Entity_Manifiesto.class, idManifiesto);
          session.getTransaction().commit();
          session.close();
          return sucursal;
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Get Manifiesto");
      }
      return null;
	}
	
	/**ProductoCliente Encomienda**/
	
	public void altaProductoClienteEncomienda(Entity_ProductoClienteEncomienda producto) {
		 try {
	        	Session session=sf.openSession();
	            session.beginTransaction();
	            session.save(producto); 
	            session.getTransaction().commit();
	            session.close();
	        } catch (Exception e){
	            System.out.println(e);
	            System.out.println("Error EncomiendaDAO. Alta ProductoClienteEncomienda");
	        }
	}
	public void  modificarProductoClienteEncomienda(Entity_ProductoClienteEncomienda producto) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          session.update(producto); 
          session.getTransaction().commit();
          session.close();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Modificar ProductoClienteEncomienda");
      }
	}
	public void bajaProductoClienteEncomienda(Entity_ProductoClienteEncomienda producto) {
		try {
			 Session session=sf.getCurrentSession();
           session.beginTransaction();
           session.delete(producto);
           session.flush();
           session.getTransaction().commit();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Eliminar ProductoClienteEncomienda");
      }
	}
	public Entity_ProductoClienteEncomienda getProductoClienteEncomienda(Integer idProductoClienteEncomienda) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          Entity_ProductoClienteEncomienda sucursal = (Entity_ProductoClienteEncomienda) session.get(Entity_ProductoClienteEncomienda.class, idProductoClienteEncomienda);
          session.getTransaction().commit();
          session.close();
          return sucursal;
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Get ProductoClienteEncomienda");
      }
      return null;
	}
	
	/**Remito**/
	
	public void altaRemito(Entity_Remito remito) {
		 try {
	        	Session session=sf.openSession();
	            session.beginTransaction();
	            session.save(remito); 
	            session.getTransaction().commit();
	            session.close();
	        } catch (Exception e){
	            System.out.println(e);
	            System.out.println("Error EncomiendaDAO. Alta Remito");
	        }
	}
	public void  modificarRemito(Entity_Remito remito) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          session.update(remito); 
          session.getTransaction().commit();
          session.close();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Modificar Remito");
      }
	}
	public void bajaRemito(Entity_Remito remito) {
		try {
			 Session session=sf.getCurrentSession();
           session.beginTransaction();
           session.delete(remito);
           session.flush();
           session.getTransaction().commit();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Eliminar Remito");
      }
	}
	public Entity_Remito getRemito(Integer idRemito) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          Entity_Remito sucursal = (Entity_Remito) session.get(Entity_Remito.class, idRemito);
          session.getTransaction().commit();
          session.close();
          return sucursal;
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Get Remito");
      }
      return null;
	}
	
	/**Trayecto**/
	public void altaTrayectoIntersucursal(Entity_TrayectoIntersucursal trayecto) {
		 try {
	        	Session session=sf.openSession();
	            session.beginTransaction();
	            session.save(trayecto); 
	            session.getTransaction().commit();
	            session.close();
	        } catch (Exception e){
	            System.out.println(e);
	            System.out.println("Error EncomiendaDAO. Alta TrayectoIntersucursal");
	        }
	}
	public void  modificarTrayectoIntersucursal(Entity_TrayectoIntersucursal sucursal) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          session.update(sucursal); 
          session.getTransaction().commit();
          session.close();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Modificar TrayectoIntersucursal");
      }
	}
	public void bajaTrayectoIntersucursal(Entity_TrayectoIntersucursal trayecto) {
		try {
			 Session session=sf.getCurrentSession();
           session.beginTransaction();
           session.delete(trayecto);
           session.flush();
           session.getTransaction().commit();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Eliminar TrayectoIntersucursal");
      }
	}
	public Entity_TrayectoIntersucursal getTrayectoIntersucursal(Integer idTrayectoIntersucursal) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          Entity_TrayectoIntersucursal sucursal = (Entity_TrayectoIntersucursal) session.get(Entity_TrayectoIntersucursal.class, idTrayectoIntersucursal);
          session.getTransaction().commit();
          session.close();
          return sucursal;
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Get TrayectoIntersucursal");
      }
      return null;
	}
	
	public void altaTrayectoOrigenSucursal(Entity_TrayectoOrigenSucursal trayecto) {
		 try {
	        	Session session=sf.openSession();
	            session.beginTransaction();
	            session.save(trayecto); 
	            session.getTransaction().commit();
	            session.close();
	        } catch (Exception e){
	            System.out.println(e);
	            System.out.println("Error EncomiendaDAO. Alta TrayectoOrigenSucursal");
	        }
	}
	public void  modificarTrayectoOrigenSucursal(Entity_TrayectoOrigenSucursal trayecto) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          session.update(trayecto); 
          session.getTransaction().commit();
          session.close();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Modificar TrayectoOrigenSucursal");
      }
	}
	public void bajaTrayectoOrigenSucursal(Entity_TrayectoOrigenSucursal trayecto) {
		try {
			 Session session=sf.getCurrentSession();
           session.beginTransaction();
           session.delete(trayecto);
           session.flush();
           session.getTransaction().commit();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Eliminar TrayectoOrigenSucursal");
      }
	}
	public Entity_TrayectoOrigenSucursal getTrayectoOrigenSucursal(Integer idTrayectoOrigenSucursal) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          Entity_TrayectoOrigenSucursal sucursal = (Entity_TrayectoOrigenSucursal) session.get(Entity_TrayectoOrigenSucursal.class, idTrayectoOrigenSucursal);
          session.getTransaction().commit();
          session.close();
          return sucursal;
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Get TrayectoOrigenSucursal");
      }
      return null;
	}
	
	public void altaTrayectoSucursalDestino(Entity_TrayectoSucursalDestino trayecto) {
		 try {
	        	Session session=sf.openSession();
	            session.beginTransaction();
	            session.save(trayecto); 
	            session.getTransaction().commit();
	            session.close();
	        } catch (Exception e){
	            System.out.println(e);
	            System.out.println("Error EncomiendaDAO. Alta TrayectoSucursalDestino");
	        }
	}
	public void  modificarTrayectoSucursalDestino(Entity_TrayectoSucursalDestino trayecto) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          session.update(trayecto); 
          session.getTransaction().commit();
          session.close();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Modificar TrayectoSucursalDestino");
      }
	}
	public void bajaTrayectoSucursalDestino(Entity_TrayectoSucursalDestino trayecto) {
		try {
			 Session session=sf.getCurrentSession();
           session.beginTransaction();
           session.delete(trayecto);
           session.flush();
           session.getTransaction().commit();
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Eliminar TrayectoSucursalDestino");
      }
	}
	public Entity_TrayectoSucursalDestino getTrayectoSucursalDestino(Integer idTrayectoSucursalDestino) {
		try {
      	Session session=sf.openSession();
          session.beginTransaction();
          Entity_TrayectoSucursalDestino sucursal = (Entity_TrayectoSucursalDestino) session.get(Entity_TrayectoSucursalDestino.class, idTrayectoSucursalDestino);
          session.getTransaction().commit();
          session.close();
          return sucursal;
      } catch (Exception e){
          System.out.println(e);
          System.out.println("Error EncomiendaDAO. Get TrayectoSucursalDestino");
      }
      return null;
	}
	
	
	
	@SuppressWarnings("unchecked")
	public List<Entity_ActividadEncomienda> listarActividades(Integer idEncomienda) {
		try{
	      	Session session = sf.openSession();
	       	List<Entity_ActividadEncomienda> lista = session.createQuery("select a from Entity_ActividadEncomienda a where a.encomienda.id = :id").setParameter("id", idEncomienda).list();
	  		session.close();
	        return lista;
		}catch(Exception e){
	        System.out.println(e);
	        System.out.println("ErrorDAO: EncomiendaDAO: Listar Actividad encomienda ");
		}
		return null;
	}


	public List<Entity_Destinatario> listarDestinatarios(Integer idEncomienda) {
		try{
			Session session = sf.openSession();
			@SuppressWarnings("unchecked")
			List<Entity_Destinatario> lista = session.createQuery("select d from Entity_Destinatario d where a.encomienda.id  = :id").setParameter("id", idEncomienda).list();
       		session.close();
       		return lista;
		}catch(Exception e){
			System.out.println(e);
			System.out.println("ErrorDAO: EncomiendaDAO: Listar Destinatarios ");
		}
		return null;
	}


	public List<Entity_EncomiendaEmpresa> listarEncomiendasEmpresa() {
		try{
			Session session = sf.openSession();
			@SuppressWarnings("unchecked")
			List<Entity_EncomiendaEmpresa> lista = session.createQuery("from Entity_EncomiendaEmpresa").list();
       		session.close();
       		return lista;
		}catch(Exception e){
			System.out.println(e);
			System.out.println("ErrorDAO: EncomiendaDAO: Listar encomienda empresa ");
		}
		return null;
	}


	public List<Entity_EncomiendaParticular> listarEncomiendasParticulares() {
		try{
			Session session = sf.openSession();
			@SuppressWarnings("unchecked")
			List<Entity_EncomiendaParticular> lista = session.createQuery("from Entity_EncomiendaParticular").list();
       		session.close();
       		return lista;
		}catch(Exception e){
			System.out.println(e);
			System.out.println("ErrorDAO: EncomiendaDAO: encomienda particular ");
		}
		return null;
	}

	public List<Entity_EncomiendaEmpresa> listarEncomiendasEmpresa(Integer idSucursal)  {
		try{
			Session session = sf.openSession();
			@SuppressWarnings("unchecked")
			List<Entity_EncomiendaEmpresa> lista = session.createQuery("select e from Entity_EncomiendaEmpresa e where e.sucursal.id = :id").setParameter("id", idSucursal).list();
       		session.close();
       		return lista;
		}catch(Exception e){
			System.out.println(e);
			System.out.println("ErrorDAO: EncomiendaDAO: Listar encomienda empresa ");
		}
		return null;
	}


	public List<Entity_EncomiendaParticular> listarEncomiendasParticulares(Integer idSucursal)  {
		try{
			Session session = sf.openSession();
			@SuppressWarnings("unchecked")
			List<Entity_EncomiendaParticular> lista = session.createQuery("select e from Entity_EncomiendaParticular e where e.sucursal.id = :id").setParameter("id", idSucursal).list();
       		session.close();
       		return lista;
		}catch(Exception e){
			System.out.println(e);
			System.out.println("ErrorDAO: EncomiendaDAO: encomienda particular ");
		}
		return null;
	}


	public List<Entity_EnvioPropio> listarEnviosPropios()  {
		try{
			Session session = sf.openSession();
			@SuppressWarnings("unchecked")
			List<Entity_EnvioPropio> lista = session.createQuery("from Entity_EnvioPropio").list();
       		session.close();
       		return lista;
		}catch(Exception e){
			System.out.println(e);
			System.out.println("ErrorDAO: EncomiendaDAO: envio propio ");
		}
		return null;
	}


	public List<Entity_EnvioTercerizado> listarEnviosTercerizados() {
		try{
			Session session = sf.openSession();
			@SuppressWarnings("unchecked")
			List<Entity_EnvioTercerizado> lista = session.createQuery("from Entity_EnvioTercerizado").list();
       		session.close();
       		return lista;
		}catch(Exception e){
			System.out.println(e);
			System.out.println("ErrorDAO: EncomiendaDAO: envio tercerizado ");
		}
		return null;
	}


	public List<Entity_ProductoClienteEncomienda> listarProductosEncomienda(Integer idEncomienda)  {
		try{
			Session session = sf.openSession();
			@SuppressWarnings("unchecked")
			List<Entity_ProductoClienteEncomienda> lista = session.createQuery("select p from Entity_EncomiendaEmpresa e JOIN e.productos p where e.id = :id").setParameter("id", idEncomienda).list();
       		session.close();
       		return lista;
		}catch(Exception e){
			System.out.println(e);
			System.out.println("ErrorDAO: EncomiendaDAO: encomienda particular ");
		}
		return null;
	}


	public List<Entity_Remito> listarRemitos(Integer idEncomienda) {
		try{
			Session session = sf.openSession();
			@SuppressWarnings("unchecked")
			List<Entity_Remito> lista = session.createQuery("select r from Entity_Encomienda e JOIN e.remitos r where e.id = :id").setParameter("id", idEncomienda).list();
       		session.close();
       		return lista;
		}catch(Exception e){
			System.out.println(e);
			System.out.println("ErrorDAO: EncomiendaDAO: encomienda particular ");
		}
		return null;
	}


	public List<Entity_Trayecto> listarTrayectos(Integer idHojaRuta){
		try{
			Session session = sf.openSession();
			@SuppressWarnings("unchecked")
			List<Entity_Trayecto> lista = session.createQuery("select t from Entity_HojaDeRuta h JOIN h.trayectos t where h.id = :id").setParameter("id", idHojaRuta).list();
       		session.close();
       		return lista;
		}catch(Exception e){
			System.out.println(e);
			System.out.println("ErrorDAO: EncomiendaDAO: encomienda particular ");
		}
		return null;
	}
	
}
